package com.itheima.mall.service;

import com.itheima.mall.dto.OrderDeliveryDto;
import com.itheima.mall.dto.OrderDto;
import com.itheima.mall.dto.OrderMoneyInfo;
import com.itheima.mall.dto.OrderReceiverInfo;
import com.itheima.mall.pojo.Order;
import com.itheima.mall.vo.OrderVo;
import com.itheima.mall.vo.PageResult;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
@Transactional
public interface OmsOrderService {
    /**
     * 批量删除订单
     * @param ids
     * @return
     */
    int deleteByIds(List<Long> ids);

    /**
     *查询订单
     * @param orderDto
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageResult list(OrderDto orderDto, Integer pageNum, Integer pageSize);

    /**
     * 批量关闭订单
     * @param ids
     * @param note
     * @return
     */
    int close(List<Long> ids, String note);
    /**
     * 批量发货
     * @param deliveryParamList
     * @return
     */
    void delivery(List<OrderDeliveryDto> deliveryParamList);
    /**
     * 修改订单费用信息
     * @param moneyInfoParam
     * @return
     */
    int moneyInfo(OrderMoneyInfo moneyInfoParam);
    /**
     * 备注订单
     * @param order
     * @return
     */
    int note(Order order);
    /**
     * 修改收货人信息
     * @param receiverInfoParam
     * @return
     */
    int receiverInfo(OrderReceiverInfo receiverInfoParam);
    /**
     * 获取订单详情：订单信息、商品信息、操作记录
     * @param id
     * @return
     */
    OrderVo details(Long id);
}
